{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "03a43ab7-88df-46c2-8618-c31e13b90c70",
   "metadata": {},
   "source": [
    "# Architector initial examples\n",
    "\n",
    "This should run on any type of machine, but should be scalable to larger clusters for testing MPI threading.\n",
    "\n",
    "This notebook will setup and execute generation of the default monodentate-only ligands in Architector (52) \n",
    "\n",
    "with the first-row transition metals (or any subset of them) in CN=6 aqueous environments.\n",
    "\n",
    "This is already up to 520 architector runs to do in parallel."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "a1ca92eb-5066-4d99-b90e-1e90b9326063",
   "metadata": {},
   "outputs": [],
   "source": [
    "from architector import (build_complex,convert_io_molecule,view_structures) # Secondary_Solv_Shell branch\n",
    "from architector import io_ptable as io_ptable\n",
    "from tqdm import tqdm # conda install -c conda-forge tqdm\n",
    "from pympipool.mpi import PyMPIExecutor # conda install -c conda-forge pympipool\n",
    "import os\n",
    "import concurrent.futures \n",
    "import mendeleev\n",
    "import multiprocessing\n",
    "import copy\n",
    "import pandas as pd\n",
    "import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "c1d5f0a6-3ba3-4ba8-9a38-ec86b6479bd2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get the CPU count (if running under slurm, just set to total cores available to the mpi you instantiated)\n",
    "cpu_count = multiprocessing.cpu_count() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "1f037738-cedc-493a-8a30-0665d99a5c59",
   "metadata": {},
   "outputs": [],
   "source": [
    "def calc_architector(input):\n",
    "    start = time.time()\n",
    "    os.environ[\"MKL_NUM_THREADS\"]=\"1\" # Set these to single thread.\n",
    "    os.environ[\"NUMEXPR_NUM_THREADS\"]=\"1\"\n",
    "    os.environ[\"OMP_NUM_THREADS\"]=\"1\"\n",
    "    # Helps A LOT with xtb efficiency.\n",
    "    try:\n",
    "        complex_mol = build_complex(input)\n",
    "        end = time.time()\n",
    "    except: \n",
    "        end = time.time()\n",
    "    else:\n",
    "        ttime = end-start\n",
    "        dfrows = []\n",
    "        for key,val in complex_mol.items():\n",
    "            val['total_walltime'] = ttime\n",
    "            val['gen_unique_name'] = key\n",
    "            val['total_end_to_end_time'] = end-start\n",
    "            if (\"sampled_solvation_shells\" in val): # Save indices\n",
    "                sampled_solvation_shells_row = [x.write_mol2('Conformer={},Energy={}'.format(i,\n",
    "                                                    x.param_dict['energy'])) for i,x in enumerate(val['sampled_solvation_shells'])]\n",
    "                val['sampled_solvation_shells'] = sampled_solvation_shells_row\n",
    "            else:\n",
    "                val['sampled_solvation_shells'] = None\n",
    "            dfrows.append(val)\n",
    "        resultsdf = pd.DataFrame(dfrows)\n",
    "        if \"ase_atoms\" in resultsdf.columns:\n",
    "            resultsdf.drop(\"ase_atoms\", inplace=True, axis=1)\n",
    "        results_dataframe = resultsdf\n",
    "        return results_dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "8c2341de-b771-48e8-9fab-31fbecd48754",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn']"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get the first-row transition metals\n",
    "metals = io_ptable.transition_metals[0:10]\n",
    "metals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "71818069-f5d5-46ad-be55-eb5376b5200d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>smiles</th>\n",
       "      <th>coordList</th>\n",
       "      <th>ligType</th>\n",
       "      <th>ligCharge</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>water</th>\n",
       "      <td>O</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hydroxyl</th>\n",
       "      <td>[OH-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>methanide</th>\n",
       "      <td>[CH3-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ethanide</th>\n",
       "      <td>[CH2-]C</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>benzyl</th>\n",
       "      <td>[c-]1ccccc1</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bisterbutylphosphinoeoxidemethane</th>\n",
       "      <td>CC(C)(C)P(=O)(CP(=O)(C(C)(C)C)C(C)(C)C)C(C)(C)C</td>\n",
       "      <td>[5, 8]</td>\n",
       "      <td>bi_cis</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bisadamphosphinoeoxidemethane</th>\n",
       "      <td>O=P(CP(=O)(C23CC1CC(CC(C1)C2)C3)C56CC4CC(CC(C4...</td>\n",
       "      <td>[0, 4]</td>\n",
       "      <td>bi_cis</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bisdimethylphosphinesulfidemethane</th>\n",
       "      <td>CP(C)(=S)CP(C)(C)=S</td>\n",
       "      <td>[3, 8]</td>\n",
       "      <td>bi_cis</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bisdimethylphosphineselenidemethane</th>\n",
       "      <td>CP(C)(=Se)CP(C)(C)=Se</td>\n",
       "      <td>[3, 8]</td>\n",
       "      <td>bi_cis</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bisdimethylphosphineteluridemethane</th>\n",
       "      <td>CP(C)(=Te)CP(C)(C)=Te</td>\n",
       "      <td>[3, 8]</td>\n",
       "      <td>bi_cis</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>144 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                                                smiles  \\\n",
       "water                                                                                O   \n",
       "hydroxyl                                                                         [OH-]   \n",
       "methanide                                                                       [CH3-]   \n",
       "ethanide                                                                       [CH2-]C   \n",
       "benzyl                                                                     [c-]1ccccc1   \n",
       "...                                                                                ...   \n",
       "bisterbutylphosphinoeoxidemethane      CC(C)(C)P(=O)(CP(=O)(C(C)(C)C)C(C)(C)C)C(C)(C)C   \n",
       "bisadamphosphinoeoxidemethane        O=P(CP(=O)(C23CC1CC(CC(C1)C2)C3)C56CC4CC(CC(C4...   \n",
       "bisdimethylphosphinesulfidemethane                                 CP(C)(=S)CP(C)(C)=S   \n",
       "bisdimethylphosphineselenidemethane                              CP(C)(=Se)CP(C)(C)=Se   \n",
       "bisdimethylphosphineteluridemethane                              CP(C)(=Te)CP(C)(C)=Te   \n",
       "\n",
       "                                    coordList ligType ligCharge  \n",
       "water                                     [0]    mono         0  \n",
       "hydroxyl                                  [0]    mono       NaN  \n",
       "methanide                                 [0]    mono       NaN  \n",
       "ethanide                                  [0]    mono       NaN  \n",
       "benzyl                                    [0]    mono       NaN  \n",
       "...                                       ...     ...       ...  \n",
       "bisterbutylphosphinoeoxidemethane      [5, 8]  bi_cis       NaN  \n",
       "bisadamphosphinoeoxidemethane          [0, 4]  bi_cis       NaN  \n",
       "bisdimethylphosphinesulfidemethane     [3, 8]  bi_cis       NaN  \n",
       "bisdimethylphosphineselenidemethane    [3, 8]  bi_cis       NaN  \n",
       "bisdimethylphosphineteluridemethane    [3, 8]  bi_cis       NaN  \n",
       "\n",
       "[144 rows x 4 columns]"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ligands_df = pd.DataFrame(io_ptable.ligands_dict).T\n",
    "ligands_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "fc6d8e1d-bb52-462c-b3b3-ae03d91d605d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>smiles</th>\n",
       "      <th>coordList</th>\n",
       "      <th>ligType</th>\n",
       "      <th>ligCharge</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>water</th>\n",
       "      <td>O</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hydroxyl</th>\n",
       "      <td>[OH-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>methanide</th>\n",
       "      <td>[CH3-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ethanide</th>\n",
       "      <td>[CH2-]C</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>benzyl</th>\n",
       "      <td>[c-]1ccccc1</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>oxo</th>\n",
       "      <td>[O-2]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hydrogen_peroxide</th>\n",
       "      <td>OO</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>oxygen_top</th>\n",
       "      <td>O=O</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hydride</th>\n",
       "      <td>[H-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sulfide</th>\n",
       "      <td>[S-2]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pyridine</th>\n",
       "      <td>c1ccncc1</td>\n",
       "      <td>[3]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>fluoride</th>\n",
       "      <td>[F-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chloride</th>\n",
       "      <td>[Cl-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bromide</th>\n",
       "      <td>[Br-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>iodide</th>\n",
       "      <td>[I-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>methanol</th>\n",
       "      <td>CO</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>methoxy</th>\n",
       "      <td>C[O-]</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ethanol</th>\n",
       "      <td>CCO</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ethoxy</th>\n",
       "      <td>CC[O-]</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>octanol</th>\n",
       "      <td>CCCCCCCCO</td>\n",
       "      <td>[8]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>nitrate_mono</th>\n",
       "      <td>[N+](=O)([O-])[O-]</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>thiocyanite</th>\n",
       "      <td>[S-]C#N</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>isothiocyanite</th>\n",
       "      <td>S=C=[N-]</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>azide</th>\n",
       "      <td>[N-]=[N+]=[N-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>benzoate_mono</th>\n",
       "      <td>C1=CC=C(C=C1)C(=O)[O-]</td>\n",
       "      <td>[8]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>benzoic_acid</th>\n",
       "      <td>C1=CC=C(C=C1)C(=O)O</td>\n",
       "      <td>[7]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>nitrite_o</th>\n",
       "      <td>N(=O)[O-]</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>nitrite_n</th>\n",
       "      <td>N(=O)[O-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>acetonitrile</th>\n",
       "      <td>CC#N</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ammonia</th>\n",
       "      <td>N</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>thf</th>\n",
       "      <td>C1CCCO1</td>\n",
       "      <td>[4]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tpp</th>\n",
       "      <td>c1ccccc1P(c2ccccc2)c3ccccc3</td>\n",
       "      <td>[6]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>triphenylphosphine</th>\n",
       "      <td>c1ccccc1P(c2ccccc2)c3ccccc3</td>\n",
       "      <td>[6]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cyanide</th>\n",
       "      <td>[C-]#N</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>isocyanide</th>\n",
       "      <td>[C-]#N</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>carbonyl</th>\n",
       "      <td>[C-]#[O+]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dehiba</th>\n",
       "      <td>CCCCC(CCC)N(C(CCC)CCCC)C(=O)C(C)C</td>\n",
       "      <td>[18]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>nitrosyl</th>\n",
       "      <td>[N+]=O</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pyrazine</th>\n",
       "      <td>c1cnccn1</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sulfite</th>\n",
       "      <td>[O-]S(=O)[O-]</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>isosulfite</th>\n",
       "      <td>[O-]S(=O)[O-]</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tricyclhexylphosphine</th>\n",
       "      <td>C1(CCCCC1)P(C2CCCCC2)C3CCCCC3</td>\n",
       "      <td>[6]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tmp</th>\n",
       "      <td>CP(C)C</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>triso-tolylphosphine</th>\n",
       "      <td>CC1=CC=CC=C1P(C2=CC=CC=C2C)C3=CC=CC=C3C</td>\n",
       "      <td>[7]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>amine</th>\n",
       "      <td>N</td>\n",
       "      <td>[0]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>co2</th>\n",
       "      <td>O=C=O</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>phosphorus_trifluoride</th>\n",
       "      <td>FP(F)F</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>topo</th>\n",
       "      <td>CCCCCCCCP(=O)(CCCCCCCC)CCCCCCCC</td>\n",
       "      <td>[9]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trimethyl_phosphite</th>\n",
       "      <td>COP(OC)OC</td>\n",
       "      <td>[2]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trimethyl_phosphine_oxide</th>\n",
       "      <td>CP(=O)(C)C</td>\n",
       "      <td>[1]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pyridine_ester</th>\n",
       "      <td>COC(=O)C1=CC(=CN=C1)C(=O)OC</td>\n",
       "      <td>[8]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>acetate_mono</th>\n",
       "      <td>CC(=O)[O-]</td>\n",
       "      <td>[3]</td>\n",
       "      <td>mono</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                            smiles coordList  \\\n",
       "water                                                            O       [0]   \n",
       "hydroxyl                                                     [OH-]       [0]   \n",
       "methanide                                                   [CH3-]       [0]   \n",
       "ethanide                                                   [CH2-]C       [0]   \n",
       "benzyl                                                 [c-]1ccccc1       [0]   \n",
       "oxo                                                          [O-2]       [0]   \n",
       "hydrogen_peroxide                                               OO       [0]   \n",
       "oxygen_top                                                     O=O       [0]   \n",
       "hydride                                                       [H-]       [0]   \n",
       "sulfide                                                      [S-2]       [0]   \n",
       "pyridine                                                  c1ccncc1       [3]   \n",
       "fluoride                                                      [F-]       [0]   \n",
       "chloride                                                     [Cl-]       [0]   \n",
       "bromide                                                      [Br-]       [0]   \n",
       "iodide                                                        [I-]       [0]   \n",
       "methanol                                                        CO       [1]   \n",
       "methoxy                                                      C[O-]       [1]   \n",
       "ethanol                                                        CCO       [2]   \n",
       "ethoxy                                                      CC[O-]       [2]   \n",
       "octanol                                                  CCCCCCCCO       [8]   \n",
       "nitrate_mono                                    [N+](=O)([O-])[O-]       [2]   \n",
       "thiocyanite                                                [S-]C#N       [0]   \n",
       "isothiocyanite                                            S=C=[N-]       [2]   \n",
       "azide                                               [N-]=[N+]=[N-]       [0]   \n",
       "benzoate_mono                               C1=CC=C(C=C1)C(=O)[O-]       [8]   \n",
       "benzoic_acid                                   C1=CC=C(C=C1)C(=O)O       [7]   \n",
       "nitrite_o                                                N(=O)[O-]       [2]   \n",
       "nitrite_n                                                N(=O)[O-]       [0]   \n",
       "acetonitrile                                                  CC#N       [2]   \n",
       "ammonia                                                          N       [0]   \n",
       "thf                                                        C1CCCO1       [4]   \n",
       "tpp                                    c1ccccc1P(c2ccccc2)c3ccccc3       [6]   \n",
       "triphenylphosphine                     c1ccccc1P(c2ccccc2)c3ccccc3       [6]   \n",
       "cyanide                                                     [C-]#N       [0]   \n",
       "isocyanide                                                  [C-]#N       [1]   \n",
       "carbonyl                                                 [C-]#[O+]       [0]   \n",
       "dehiba                           CCCCC(CCC)N(C(CCC)CCCC)C(=O)C(C)C      [18]   \n",
       "nitrosyl                                                    [N+]=O       [0]   \n",
       "pyrazine                                                  c1cnccn1       [2]   \n",
       "sulfite                                              [O-]S(=O)[O-]       [1]   \n",
       "isosulfite                                           [O-]S(=O)[O-]       [0]   \n",
       "tricyclhexylphosphine                C1(CCCCC1)P(C2CCCCC2)C3CCCCC3       [6]   \n",
       "tmp                                                         CP(C)C       [1]   \n",
       "triso-tolylphosphine       CC1=CC=CC=C1P(C2=CC=CC=C2C)C3=CC=CC=C3C       [7]   \n",
       "amine                                                            N       [0]   \n",
       "co2                                                          O=C=O       [1]   \n",
       "phosphorus_trifluoride                                      FP(F)F       [1]   \n",
       "topo                               CCCCCCCCP(=O)(CCCCCCCC)CCCCCCCC       [9]   \n",
       "trimethyl_phosphite                                      COP(OC)OC       [2]   \n",
       "trimethyl_phosphine_oxide                               CP(=O)(C)C       [1]   \n",
       "pyridine_ester                         COC(=O)C1=CC(=CN=C1)C(=O)OC       [8]   \n",
       "acetate_mono                                            CC(=O)[O-]       [3]   \n",
       "\n",
       "                          ligType ligCharge  \n",
       "water                        mono         0  \n",
       "hydroxyl                     mono       NaN  \n",
       "methanide                    mono       NaN  \n",
       "ethanide                     mono       NaN  \n",
       "benzyl                       mono       NaN  \n",
       "oxo                          mono       NaN  \n",
       "hydrogen_peroxide            mono       NaN  \n",
       "oxygen_top                   mono       NaN  \n",
       "hydride                      mono       NaN  \n",
       "sulfide                      mono       NaN  \n",
       "pyridine                     mono       NaN  \n",
       "fluoride                     mono       NaN  \n",
       "chloride                     mono       NaN  \n",
       "bromide                      mono       NaN  \n",
       "iodide                       mono       NaN  \n",
       "methanol                     mono       NaN  \n",
       "methoxy                      mono       NaN  \n",
       "ethanol                      mono       NaN  \n",
       "ethoxy                       mono       NaN  \n",
       "octanol                      mono       NaN  \n",
       "nitrate_mono                 mono       NaN  \n",
       "thiocyanite                  mono       NaN  \n",
       "isothiocyanite               mono       NaN  \n",
       "azide                        mono       NaN  \n",
       "benzoate_mono                mono       NaN  \n",
       "benzoic_acid                 mono       NaN  \n",
       "nitrite_o                    mono       NaN  \n",
       "nitrite_n                    mono       NaN  \n",
       "acetonitrile                 mono       NaN  \n",
       "ammonia                      mono       NaN  \n",
       "thf                          mono       NaN  \n",
       "tpp                          mono       NaN  \n",
       "triphenylphosphine           mono       NaN  \n",
       "cyanide                      mono       NaN  \n",
       "isocyanide                   mono       NaN  \n",
       "carbonyl                     mono       NaN  \n",
       "dehiba                       mono       NaN  \n",
       "nitrosyl                     mono       NaN  \n",
       "pyrazine                     mono       NaN  \n",
       "sulfite                      mono       NaN  \n",
       "isosulfite                   mono       NaN  \n",
       "tricyclhexylphosphine        mono       NaN  \n",
       "tmp                          mono       NaN  \n",
       "triso-tolylphosphine         mono       NaN  \n",
       "amine                        mono       NaN  \n",
       "co2                          mono       NaN  \n",
       "phosphorus_trifluoride       mono       NaN  \n",
       "topo                         mono       NaN  \n",
       "trimethyl_phosphite          mono       NaN  \n",
       "trimethyl_phosphine_oxide    mono       NaN  \n",
       "pyridine_ester               mono       NaN  \n",
       "acetate_mono                 mono       NaN  "
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Pull out only the default monodentate ligands\n",
    "monodf = ligands_df[ligands_df.ligType == 'mono'] \n",
    "monodf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "022f3093-bbba-4112-a577-68d0326d372e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(52, 3)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "monodf.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "308e679e-d4ea-4f98-836f-7e6707c18a31",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'water'"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "monodf.iloc[0].name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "6b8d896e-7821-41a3-bcf7-8319bd4edaa5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Setup the input dictionary\n",
    "input_dict_example = {'core':{'metal':'Fe','coreCN':6},\n",
    "                      'ligands':[monodf.iloc[0].name],\n",
    "                      'parameters':{}}\n",
    "# Runs in just a couple seconds.\n",
    "output_example = calc_architector(input_dict_example)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "e87a3692-e309-43aa-a679-64e889316ab3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>total_charge</th>\n",
       "      <th>xtb_n_unpaired_electrons</th>\n",
       "      <th>calc_n_unpaired_electrons</th>\n",
       "      <th>xtb_total_charge</th>\n",
       "      <th>metal_ox</th>\n",
       "      <th>init_energy</th>\n",
       "      <th>energy</th>\n",
       "      <th>mol2string</th>\n",
       "      <th>init_mol2string</th>\n",
       "      <th>energy_sorted_index</th>\n",
       "      <th>...</th>\n",
       "      <th>core_preprocess_time</th>\n",
       "      <th>symmetry_preprocess_time</th>\n",
       "      <th>total_liggen_time</th>\n",
       "      <th>total_complex_assembly_time</th>\n",
       "      <th>final_relaxation_time</th>\n",
       "      <th>sum_total_conformer_time_spent</th>\n",
       "      <th>total_walltime</th>\n",
       "      <th>gen_unique_name</th>\n",
       "      <th>total_end_to_end_time</th>\n",
       "      <th>sampled_solvation_shells</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-892.682242</td>\n",
       "      <td>-892.682242</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\noctahedral_0_nunpairedes_4_...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.111207</td>\n",
       "      <td>0.006917</td>\n",
       "      <td>0.059149</td>\n",
       "      <td>0.395733</td>\n",
       "      <td>0.031184</td>\n",
       "      <td>0.769353</td>\n",
       "      <td>5.666265</td>\n",
       "      <td>octahedral_0_nunpairedes_4_charge_2</td>\n",
       "      <td>5.666265</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-892.565967</td>\n",
       "      <td>-892.565967</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\ntrigonal_prismatic_0_nunpai...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.111207</td>\n",
       "      <td>0.006917</td>\n",
       "      <td>0.059149</td>\n",
       "      <td>0.380541</td>\n",
       "      <td>0.027977</td>\n",
       "      <td>1.367125</td>\n",
       "      <td>5.666265</td>\n",
       "      <td>trigonal_prismatic_0_nunpairedes_4_charge_2</td>\n",
       "      <td>5.666265</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-892.415213</td>\n",
       "      <td>-892.415213</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\npentagonal_pyramidal_0_nunp...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.111207</td>\n",
       "      <td>0.006917</td>\n",
       "      <td>0.059149</td>\n",
       "      <td>0.389528</td>\n",
       "      <td>0.028971</td>\n",
       "      <td>2.163487</td>\n",
       "      <td>5.666265</td>\n",
       "      <td>pentagonal_pyramidal_0_nunpairedes_4_charge_2</td>\n",
       "      <td>5.666265</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   total_charge  xtb_n_unpaired_electrons  calc_n_unpaired_electrons  \\\n",
       "0             2                         4                          4   \n",
       "1             2                         4                          4   \n",
       "2             2                         4                          4   \n",
       "\n",
       "   xtb_total_charge  metal_ox  init_energy      energy  \\\n",
       "0                 2         2  -892.682242 -892.682242   \n",
       "1                 2         2  -892.565967 -892.565967   \n",
       "2                 2         2  -892.415213 -892.415213   \n",
       "\n",
       "                                          mol2string init_mol2string  \\\n",
       "0  @<TRIPOS>MOLECULE\\noctahedral_0_nunpairedes_4_...            None   \n",
       "1  @<TRIPOS>MOLECULE\\ntrigonal_prismatic_0_nunpai...            None   \n",
       "2  @<TRIPOS>MOLECULE\\npentagonal_pyramidal_0_nunp...            None   \n",
       "\n",
       "   energy_sorted_index  ...  core_preprocess_time symmetry_preprocess_time  \\\n",
       "0                    0  ...              0.111207                 0.006917   \n",
       "1                    0  ...              0.111207                 0.006917   \n",
       "2                    0  ...              0.111207                 0.006917   \n",
       "\n",
       "   total_liggen_time  total_complex_assembly_time  final_relaxation_time  \\\n",
       "0           0.059149                     0.395733               0.031184   \n",
       "1           0.059149                     0.380541               0.027977   \n",
       "2           0.059149                     0.389528               0.028971   \n",
       "\n",
       "   sum_total_conformer_time_spent  total_walltime  \\\n",
       "0                        0.769353        5.666265   \n",
       "1                        1.367125        5.666265   \n",
       "2                        2.163487        5.666265   \n",
       "\n",
       "                                 gen_unique_name  total_end_to_end_time  \\\n",
       "0            octahedral_0_nunpairedes_4_charge_2               5.666265   \n",
       "1    trigonal_prismatic_0_nunpairedes_4_charge_2               5.666265   \n",
       "2  pentagonal_pyramidal_0_nunpairedes_4_charge_2               5.666265   \n",
       "\n",
       "  sampled_solvation_shells  \n",
       "0                     None  \n",
       "1                     None  \n",
       "2                     None  \n",
       "\n",
       "[3 rows x 22 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "output_example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "81469f85-7da0-44f7-822c-d89a86c65297",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/3dmoljs_load.v0": "<div id=\"3dmolviewer_17060449064173791\"  style=\"position: relative; width: 800px; height: 200px\">\n        <p id=\"3dmolwarning_17060449064173791\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason).  You need to install the 3dmol extension: <br>\n        <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n        </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n  return new Promise((resolve, reject) => {\n    //this is to ignore the existence of requirejs amd\n    var savedexports, savedmodule;\n    if (typeof exports !== 'undefined') savedexports = exports;\n    else exports = {}\n    if (typeof module !== 'undefined') savedmodule = module;\n    else module = {}\n\n    var tag = document.createElement('script');\n    tag.src = uri;\n    tag.async = true;\n    tag.onload = () => {\n        exports = savedexports;\n        module = savedmodule;\n        resolve();\n    };\n  var firstScriptTag = document.getElementsByTagName('script')[0];\n  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n  $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.0.1/3Dmol-min.js');\n}\n\nvar viewer_17060449064173791 = null;\nvar warn = document.getElementById(\"3dmolwarning_17060449064173791\");\nif(warn) {\n    warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nvar viewergrid_17060449064173791 = null;\nviewergrid_17060449064173791 = $3Dmol.createViewerGrid(document.getElementById(\"3dmolviewer_17060449064173791\"),{rows: 1, cols: 4, control_all: false},{backgroundColor:\"white\"});\nviewer_17060449064173791 = viewergrid_17060449064173791[0][0];\nviewergrid_17060449064173791[0][0].zoomTo();viewergrid_17060449064173791[0][1].zoomTo();viewergrid_17060449064173791[0][2].zoomTo();viewergrid_17060449064173791[0][3].zoomTo();\tviewergrid_17060449064173791[0][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0014    0.0034    0.0016   Fe        1 RES1   0.0000\\n     2 O1        0.0268   -0.0134    2.3489   O.3       1 RES1   0.0000\\n     3 H1       -0.3239   -0.6956    2.9312   H         1 RES1   0.0000\\n     4 H2        0.2959    0.7094    2.9256   H         1 RES1   0.0000\\n     5 O2        0.0160   -0.0472   -2.3476   O.3       1 RES1   0.0000\\n     6 H3       -0.7139   -0.2852   -2.9290   H         1 RES1   0.0000\\n     7 H4        0.6981    0.3202   -2.9202   H         1 RES1   0.0000\\n     8 O3        2.3447    0.0190   -0.0288   O.3       1 RES1   0.0000\\n     9 H5        2.9097   -0.7054   -0.3178   H         1 RES1   0.0000\\n    10 H6        2.9384    0.6808    0.3411   H         1 RES1   0.0000\\n    11 O4       -2.3475    0.0193   -0.0538   O.3       1 RES1   0.0000\\n    12 H7       -2.9218   -0.7200   -0.2800   H         1 RES1   0.0000\\n    13 H8       -2.9245    0.6906    0.3256   H         1 RES1   0.0000\\n    14 O5       -0.0136    2.3575    0.0462   O.3       1 RES1   0.0000\\n    15 H9       -0.6939    2.9257   -0.3305   H         1 RES1   0.0000\\n    16 H10       0.7091    2.9447    0.2915   H         1 RES1   0.0000\\n    17 O6       -0.0342   -2.3471    0.0157   O.3       1 RES1   0.0000\\n    18 H11       0.3275   -2.9314    0.6899   H         1 RES1   0.0000\\n    19 H12      -0.2916   -2.9254   -0.7098   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060449064173791[0][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060449064173791[0][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060449064173791[0][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060449064173791[0][0].zoomTo();\n\tviewergrid_17060449064173791[0][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0030    0.0047   -0.0182   Fe        1 RES1   0.0000\\n     2 O1        1.8243    0.0071    1.4607   O.3       1 RES1   0.0000\\n     3 H1        1.9858    0.6796    2.1309   H         1 RES1   0.0000\\n     4 H2        2.4237   -0.7171    1.6684   H         1 RES1   0.0000\\n     5 O2       -0.9110    1.5754    1.4983   O.3       1 RES1   0.0000\\n     6 H3       -1.5314    1.4050    2.2145   H         1 RES1   0.0000\\n     7 H4       -0.6750    2.5052    1.5816   H         1 RES1   0.0000\\n     8 O3       -0.8909   -1.5668    1.4999   O.3       1 RES1   0.0000\\n     9 H5       -1.6292   -1.4326    2.1029   H         1 RES1   0.0000\\n    10 H6       -0.5848   -2.4643    1.6673   H         1 RES1   0.0000\\n    11 O4        1.8136    0.0053   -1.4931   O.3       1 RES1   0.0000\\n    12 H7        1.7540   -0.0069   -2.4543   H         1 RES1   0.0000\\n    13 H8        2.7547   -0.0206   -1.2899   H         1 RES1   0.0000\\n    14 O5       -0.9255    1.5585   -1.5213   O.3       1 RES1   0.0000\\n    15 H9       -0.6592    1.7067   -2.4348   H         1 RES1   0.0000\\n    16 H10      -1.6007    2.2207   -1.3411   H         1 RES1   0.0000\\n    17 O6       -0.8713   -1.5726   -1.5178   O.3       1 RES1   0.0000\\n    18 H11      -1.3411   -1.3592   -2.3310   H         1 RES1   0.0000\\n    19 H12      -0.9409   -2.5282   -1.4228   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060449064173791[0][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060449064173791[0][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060449064173791[0][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060449064173791[0][1].zoomTo();\n\tviewergrid_17060449064173791[0][2].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0123   -0.0013    0.2564   Fe        1 RES1   0.0000\\n     2 O1       -0.0151   -0.0371    2.6414   O.3       1 RES1   0.0000\\n     3 H1        0.7675   -0.2169    3.1742   H         1 RES1   0.0000\\n     4 H2       -0.7052    0.2029    3.2673   H         1 RES1   0.0000\\n     5 O2        2.4423   -0.0510   -0.0006   O.3       1 RES1   0.0000\\n     6 H3        2.9299   -0.5689   -0.6503   H         1 RES1   0.0000\\n     7 H4        3.0243    0.6682    0.2631   H         1 RES1   0.0000\\n     8 O3        0.8277    2.2991   -0.0889   O.3       1 RES1   0.0000\\n     9 H5        0.3653    3.0535    0.2899   H         1 RES1   0.0000\\n    10 H6        1.3464    2.6501   -0.8191   H         1 RES1   0.0000\\n    11 O4       -1.9053    1.4910   -0.1316   O.3       1 RES1   0.0000\\n    12 H7       -2.4571    1.8523    0.5686   H         1 RES1   0.0000\\n    13 H8       -2.3754    1.6576   -0.9549   H         1 RES1   0.0000\\n    14 O5       -1.9252   -1.4529   -0.1489   O.3       1 RES1   0.0000\\n    15 H9       -2.6826   -1.3428   -0.7329   H         1 RES1   0.0000\\n    16 H10      -2.1501   -2.1672    0.4569   H         1 RES1   0.0000\\n    17 O6        0.7236   -2.3133   -0.1239   O.3       1 RES1   0.0000\\n    18 H11       0.3587   -2.9824   -0.7125   H         1 RES1   0.0000\\n    19 H12       1.4195   -2.7410    0.3840   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060449064173791[0][2].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060449064173791[0][2].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060449064173791[0][2].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060449064173791[0][2].zoomTo();\nviewergrid_17060449064173791[0][3].render();\nviewergrid_17060449064173791[0][2].render();\nviewergrid_17060449064173791[0][1].render();\nviewergrid_17060449064173791[0][0].render();\n});\n</script>",
      "text/html": [
       "<div id=\"3dmolviewer_17060449064173791\"  style=\"position: relative; width: 800px; height: 200px\">\n",
       "        <p id=\"3dmolwarning_17060449064173791\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason).  You need to install the 3dmol extension: <br>\n",
       "        <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n",
       "        </div>\n",
       "<script>\n",
       "\n",
       "var loadScriptAsync = function(uri){\n",
       "  return new Promise((resolve, reject) => {\n",
       "    //this is to ignore the existence of requirejs amd\n",
       "    var savedexports, savedmodule;\n",
       "    if (typeof exports !== 'undefined') savedexports = exports;\n",
       "    else exports = {}\n",
       "    if (typeof module !== 'undefined') savedmodule = module;\n",
       "    else module = {}\n",
       "\n",
       "    var tag = document.createElement('script');\n",
       "    tag.src = uri;\n",
       "    tag.async = true;\n",
       "    tag.onload = () => {\n",
       "        exports = savedexports;\n",
       "        module = savedmodule;\n",
       "        resolve();\n",
       "    };\n",
       "  var firstScriptTag = document.getElementsByTagName('script')[0];\n",
       "  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n",
       "});\n",
       "};\n",
       "\n",
       "if(typeof $3Dmolpromise === 'undefined') {\n",
       "$3Dmolpromise = null;\n",
       "  $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.0.1/3Dmol-min.js');\n",
       "}\n",
       "\n",
       "var viewer_17060449064173791 = null;\n",
       "var warn = document.getElementById(\"3dmolwarning_17060449064173791\");\n",
       "if(warn) {\n",
       "    warn.parentNode.removeChild(warn);\n",
       "}\n",
       "$3Dmolpromise.then(function() {\n",
       "var viewergrid_17060449064173791 = null;\n",
       "viewergrid_17060449064173791 = $3Dmol.createViewerGrid(document.getElementById(\"3dmolviewer_17060449064173791\"),{rows: 1, cols: 4, control_all: false},{backgroundColor:\"white\"});\n",
       "viewer_17060449064173791 = viewergrid_17060449064173791[0][0];\n",
       "viewergrid_17060449064173791[0][0].zoomTo();viewergrid_17060449064173791[0][1].zoomTo();viewergrid_17060449064173791[0][2].zoomTo();viewergrid_17060449064173791[0][3].zoomTo();\tviewergrid_17060449064173791[0][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0014    0.0034    0.0016   Fe        1 RES1   0.0000\\n     2 O1        0.0268   -0.0134    2.3489   O.3       1 RES1   0.0000\\n     3 H1       -0.3239   -0.6956    2.9312   H         1 RES1   0.0000\\n     4 H2        0.2959    0.7094    2.9256   H         1 RES1   0.0000\\n     5 O2        0.0160   -0.0472   -2.3476   O.3       1 RES1   0.0000\\n     6 H3       -0.7139   -0.2852   -2.9290   H         1 RES1   0.0000\\n     7 H4        0.6981    0.3202   -2.9202   H         1 RES1   0.0000\\n     8 O3        2.3447    0.0190   -0.0288   O.3       1 RES1   0.0000\\n     9 H5        2.9097   -0.7054   -0.3178   H         1 RES1   0.0000\\n    10 H6        2.9384    0.6808    0.3411   H         1 RES1   0.0000\\n    11 O4       -2.3475    0.0193   -0.0538   O.3       1 RES1   0.0000\\n    12 H7       -2.9218   -0.7200   -0.2800   H         1 RES1   0.0000\\n    13 H8       -2.9245    0.6906    0.3256   H         1 RES1   0.0000\\n    14 O5       -0.0136    2.3575    0.0462   O.3       1 RES1   0.0000\\n    15 H9       -0.6939    2.9257   -0.3305   H         1 RES1   0.0000\\n    16 H10       0.7091    2.9447    0.2915   H         1 RES1   0.0000\\n    17 O6       -0.0342   -2.3471    0.0157   O.3       1 RES1   0.0000\\n    18 H11       0.3275   -2.9314    0.6899   H         1 RES1   0.0000\\n    19 H12      -0.2916   -2.9254   -0.7098   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060449064173791[0][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060449064173791[0][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060449064173791[0][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060449064173791[0][0].zoomTo();\n",
       "\tviewergrid_17060449064173791[0][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0030    0.0047   -0.0182   Fe        1 RES1   0.0000\\n     2 O1        1.8243    0.0071    1.4607   O.3       1 RES1   0.0000\\n     3 H1        1.9858    0.6796    2.1309   H         1 RES1   0.0000\\n     4 H2        2.4237   -0.7171    1.6684   H         1 RES1   0.0000\\n     5 O2       -0.9110    1.5754    1.4983   O.3       1 RES1   0.0000\\n     6 H3       -1.5314    1.4050    2.2145   H         1 RES1   0.0000\\n     7 H4       -0.6750    2.5052    1.5816   H         1 RES1   0.0000\\n     8 O3       -0.8909   -1.5668    1.4999   O.3       1 RES1   0.0000\\n     9 H5       -1.6292   -1.4326    2.1029   H         1 RES1   0.0000\\n    10 H6       -0.5848   -2.4643    1.6673   H         1 RES1   0.0000\\n    11 O4        1.8136    0.0053   -1.4931   O.3       1 RES1   0.0000\\n    12 H7        1.7540   -0.0069   -2.4543   H         1 RES1   0.0000\\n    13 H8        2.7547   -0.0206   -1.2899   H         1 RES1   0.0000\\n    14 O5       -0.9255    1.5585   -1.5213   O.3       1 RES1   0.0000\\n    15 H9       -0.6592    1.7067   -2.4348   H         1 RES1   0.0000\\n    16 H10      -1.6007    2.2207   -1.3411   H         1 RES1   0.0000\\n    17 O6       -0.8713   -1.5726   -1.5178   O.3       1 RES1   0.0000\\n    18 H11      -1.3411   -1.3592   -2.3310   H         1 RES1   0.0000\\n    19 H12      -0.9409   -2.5282   -1.4228   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060449064173791[0][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060449064173791[0][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060449064173791[0][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060449064173791[0][1].zoomTo();\n",
       "\tviewergrid_17060449064173791[0][2].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0123   -0.0013    0.2564   Fe        1 RES1   0.0000\\n     2 O1       -0.0151   -0.0371    2.6414   O.3       1 RES1   0.0000\\n     3 H1        0.7675   -0.2169    3.1742   H         1 RES1   0.0000\\n     4 H2       -0.7052    0.2029    3.2673   H         1 RES1   0.0000\\n     5 O2        2.4423   -0.0510   -0.0006   O.3       1 RES1   0.0000\\n     6 H3        2.9299   -0.5689   -0.6503   H         1 RES1   0.0000\\n     7 H4        3.0243    0.6682    0.2631   H         1 RES1   0.0000\\n     8 O3        0.8277    2.2991   -0.0889   O.3       1 RES1   0.0000\\n     9 H5        0.3653    3.0535    0.2899   H         1 RES1   0.0000\\n    10 H6        1.3464    2.6501   -0.8191   H         1 RES1   0.0000\\n    11 O4       -1.9053    1.4910   -0.1316   O.3       1 RES1   0.0000\\n    12 H7       -2.4571    1.8523    0.5686   H         1 RES1   0.0000\\n    13 H8       -2.3754    1.6576   -0.9549   H         1 RES1   0.0000\\n    14 O5       -1.9252   -1.4529   -0.1489   O.3       1 RES1   0.0000\\n    15 H9       -2.6826   -1.3428   -0.7329   H         1 RES1   0.0000\\n    16 H10      -2.1501   -2.1672    0.4569   H         1 RES1   0.0000\\n    17 O6        0.7236   -2.3133   -0.1239   O.3       1 RES1   0.0000\\n    18 H11       0.3587   -2.9824   -0.7125   H         1 RES1   0.0000\\n    19 H12       1.4195   -2.7410    0.3840   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060449064173791[0][2].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060449064173791[0][2].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060449064173791[0][2].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060449064173791[0][2].zoomTo();\n",
       "viewergrid_17060449064173791[0][3].render();\n",
       "viewergrid_17060449064173791[0][2].render();\n",
       "viewergrid_17060449064173791[0][1].render();\n",
       "viewergrid_17060449064173791[0][0].render();\n",
       "});\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "view_structures(output_example.mol2string)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "51573d72-4907-43ec-9247-2a85dea13d8b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|███████████████████████████████████████████| 20/20 [00:53<00:00,  2.69s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m\u001b[0m"
     ]
    }
   ],
   "source": [
    "# Now, let's do this in embarassingly parallel with a chunk of ligands with Iron\n",
    "with PyMPIExecutor(max_workers=cpu_count, cores_per_worker=1) as exe:\n",
    "    fs_list = []\n",
    "    for lig_name in monodf.index.values[0:20]:\n",
    "        tmp_inp = copy.deepcopy(input_dict_example)\n",
    "        tmp_inp['ligands'] = [lig_name]\n",
    "        fs = exe.submit(calc_architector,tmp_inp)\n",
    "        fs_list.append(fs)\n",
    "    out_dfs = []\n",
    "    for future in tqdm(concurrent.futures.as_completed(fs_list),total=len(fs_list)):\n",
    "        out_dfs.append(future.result())\n",
    "# Note that this block took ~50 seconds on my laptop (Macbook Pro/M2Max)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "81ee79d9-45b7-4012-ab60-63760b7e8f61",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Combine outputs\n",
    "out_df = pd.concat(out_dfs)\n",
    "out_df.reset_index(inplace=True,drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "49d26c65-e536-4fa4-8ba9-5497cf141997",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>total_charge</th>\n",
       "      <th>xtb_n_unpaired_electrons</th>\n",
       "      <th>calc_n_unpaired_electrons</th>\n",
       "      <th>xtb_total_charge</th>\n",
       "      <th>metal_ox</th>\n",
       "      <th>init_energy</th>\n",
       "      <th>energy</th>\n",
       "      <th>mol2string</th>\n",
       "      <th>init_mol2string</th>\n",
       "      <th>energy_sorted_index</th>\n",
       "      <th>...</th>\n",
       "      <th>core_preprocess_time</th>\n",
       "      <th>symmetry_preprocess_time</th>\n",
       "      <th>total_liggen_time</th>\n",
       "      <th>total_complex_assembly_time</th>\n",
       "      <th>final_relaxation_time</th>\n",
       "      <th>sum_total_conformer_time_spent</th>\n",
       "      <th>total_walltime</th>\n",
       "      <th>gen_unique_name</th>\n",
       "      <th>total_end_to_end_time</th>\n",
       "      <th>sampled_solvation_shells</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-892.669267</td>\n",
       "      <td>-892.669267</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\noctahedral_0_nunpairedes_4_...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.116500</td>\n",
       "      <td>0.007407</td>\n",
       "      <td>11.143919</td>\n",
       "      <td>0.138660</td>\n",
       "      <td>0.013355</td>\n",
       "      <td>0.353667</td>\n",
       "      <td>5.442197</td>\n",
       "      <td>octahedral_0_nunpairedes_4_charge_2</td>\n",
       "      <td>5.442197</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-892.560732</td>\n",
       "      <td>-892.560732</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\ntrigonal_prismatic_0_nunpai...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.116500</td>\n",
       "      <td>0.007407</td>\n",
       "      <td>11.143919</td>\n",
       "      <td>0.193277</td>\n",
       "      <td>0.011160</td>\n",
       "      <td>1.107874</td>\n",
       "      <td>5.442197</td>\n",
       "      <td>trigonal_prismatic_0_nunpairedes_4_charge_2</td>\n",
       "      <td>5.442197</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-892.409045</td>\n",
       "      <td>-892.409045</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\npentagonal_pyramidal_0_nunp...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.116500</td>\n",
       "      <td>0.007407</td>\n",
       "      <td>11.143919</td>\n",
       "      <td>0.145919</td>\n",
       "      <td>0.009672</td>\n",
       "      <td>2.114506</td>\n",
       "      <td>5.442197</td>\n",
       "      <td>pentagonal_pyramidal_0_nunpairedes_4_charge_2</td>\n",
       "      <td>5.442197</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>-877.757967</td>\n",
       "      <td>-877.757967</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\noctahedral_0_nunpairedes_4_...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.108345</td>\n",
       "      <td>0.003912</td>\n",
       "      <td>9.139184</td>\n",
       "      <td>0.143223</td>\n",
       "      <td>0.007961</td>\n",
       "      <td>0.318303</td>\n",
       "      <td>5.793172</td>\n",
       "      <td>octahedral_0_nunpairedes_4_charge_0</td>\n",
       "      <td>5.793172</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>-877.280662</td>\n",
       "      <td>-877.280662</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\ntrigonal_prismatic_0_nunpai...</td>\n",
       "      <td>None</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0.108345</td>\n",
       "      <td>0.003912</td>\n",
       "      <td>9.139184</td>\n",
       "      <td>0.134305</td>\n",
       "      <td>0.007199</td>\n",
       "      <td>0.766230</td>\n",
       "      <td>5.793172</td>\n",
       "      <td>trigonal_prismatic_0_nunpairedes_4_charge_0</td>\n",
       "      <td>5.793172</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>65</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1064.865300</td>\n",
       "      <td>-1064.865300</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\npentagonal_pyramidal_0_nunp...</td>\n",
       "      <td>None</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>0.104814</td>\n",
       "      <td>0.003572</td>\n",
       "      <td>0.878757</td>\n",
       "      <td>0.149838</td>\n",
       "      <td>0.011680</td>\n",
       "      <td>3.368164</td>\n",
       "      <td>12.907034</td>\n",
       "      <td>pentagonal_pyramidal_0_nunpairedes_4_charge_2</td>\n",
       "      <td>12.907034</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>66</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1582.159430</td>\n",
       "      <td>-1582.159430</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\nhexagonal_planar_0_nunpaire...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.079605</td>\n",
       "      <td>0.025068</td>\n",
       "      <td>4.208129</td>\n",
       "      <td>0.360765</td>\n",
       "      <td>0.037933</td>\n",
       "      <td>4.256979</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>hexagonal_planar_0_nunpairedes_4_charge_2</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>67</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1582.052222</td>\n",
       "      <td>-1582.052222</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\noctahedral_0_nunpairedes_4_...</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.079605</td>\n",
       "      <td>0.025068</td>\n",
       "      <td>4.208129</td>\n",
       "      <td>0.325062</td>\n",
       "      <td>0.039498</td>\n",
       "      <td>5.155580</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>octahedral_0_nunpairedes_4_charge_2</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>68</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1582.010157</td>\n",
       "      <td>-1582.010157</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\ntrigonal_prismatic_0_nunpai...</td>\n",
       "      <td>None</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0.079605</td>\n",
       "      <td>0.025068</td>\n",
       "      <td>4.208129</td>\n",
       "      <td>0.330265</td>\n",
       "      <td>0.044216</td>\n",
       "      <td>6.984808</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>trigonal_prismatic_0_nunpairedes_4_charge_2</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1581.940379</td>\n",
       "      <td>-1581.940379</td>\n",
       "      <td>@&lt;TRIPOS&gt;MOLECULE\\npentagonal_pyramidal_0_nunp...</td>\n",
       "      <td>None</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0.079605</td>\n",
       "      <td>0.025068</td>\n",
       "      <td>4.208129</td>\n",
       "      <td>0.321576</td>\n",
       "      <td>0.044683</td>\n",
       "      <td>9.709718</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>pentagonal_pyramidal_0_nunpairedes_4_charge_2</td>\n",
       "      <td>37.245130</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>70 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    total_charge  xtb_n_unpaired_electrons  calc_n_unpaired_electrons  \\\n",
       "0              2                         4                          4   \n",
       "1              2                         4                          4   \n",
       "2              2                         4                          4   \n",
       "3              0                         4                          4   \n",
       "4              0                         4                          4   \n",
       "..           ...                       ...                        ...   \n",
       "65             2                         4                          4   \n",
       "66             2                         4                          4   \n",
       "67             2                         4                          4   \n",
       "68             2                         4                          4   \n",
       "69             2                         4                          4   \n",
       "\n",
       "    xtb_total_charge  metal_ox  init_energy       energy  \\\n",
       "0                  2         2  -892.669267  -892.669267   \n",
       "1                  2         2  -892.560732  -892.560732   \n",
       "2                  2         2  -892.409045  -892.409045   \n",
       "3                  0         2  -877.757967  -877.757967   \n",
       "4                  0         2  -877.280662  -877.280662   \n",
       "..               ...       ...          ...          ...   \n",
       "65                 2         2 -1064.865300 -1064.865300   \n",
       "66                 2         2 -1582.159430 -1582.159430   \n",
       "67                 2         2 -1582.052222 -1582.052222   \n",
       "68                 2         2 -1582.010157 -1582.010157   \n",
       "69                 2         2 -1581.940379 -1581.940379   \n",
       "\n",
       "                                           mol2string init_mol2string  \\\n",
       "0   @<TRIPOS>MOLECULE\\noctahedral_0_nunpairedes_4_...            None   \n",
       "1   @<TRIPOS>MOLECULE\\ntrigonal_prismatic_0_nunpai...            None   \n",
       "2   @<TRIPOS>MOLECULE\\npentagonal_pyramidal_0_nunp...            None   \n",
       "3   @<TRIPOS>MOLECULE\\noctahedral_0_nunpairedes_4_...            None   \n",
       "4   @<TRIPOS>MOLECULE\\ntrigonal_prismatic_0_nunpai...            None   \n",
       "..                                                ...             ...   \n",
       "65  @<TRIPOS>MOLECULE\\npentagonal_pyramidal_0_nunp...            None   \n",
       "66  @<TRIPOS>MOLECULE\\nhexagonal_planar_0_nunpaire...            None   \n",
       "67  @<TRIPOS>MOLECULE\\noctahedral_0_nunpairedes_4_...            None   \n",
       "68  @<TRIPOS>MOLECULE\\ntrigonal_prismatic_0_nunpai...            None   \n",
       "69  @<TRIPOS>MOLECULE\\npentagonal_pyramidal_0_nunp...            None   \n",
       "\n",
       "    energy_sorted_index  ...  core_preprocess_time symmetry_preprocess_time  \\\n",
       "0                     0  ...              0.116500                 0.007407   \n",
       "1                     0  ...              0.116500                 0.007407   \n",
       "2                     0  ...              0.116500                 0.007407   \n",
       "3                     0  ...              0.108345                 0.003912   \n",
       "4                     1  ...              0.108345                 0.003912   \n",
       "..                  ...  ...                   ...                      ...   \n",
       "65                    2  ...              0.104814                 0.003572   \n",
       "66                    0  ...              0.079605                 0.025068   \n",
       "67                    0  ...              0.079605                 0.025068   \n",
       "68                    1  ...              0.079605                 0.025068   \n",
       "69                    3  ...              0.079605                 0.025068   \n",
       "\n",
       "    total_liggen_time  total_complex_assembly_time  final_relaxation_time  \\\n",
       "0           11.143919                     0.138660               0.013355   \n",
       "1           11.143919                     0.193277               0.011160   \n",
       "2           11.143919                     0.145919               0.009672   \n",
       "3            9.139184                     0.143223               0.007961   \n",
       "4            9.139184                     0.134305               0.007199   \n",
       "..                ...                          ...                    ...   \n",
       "65           0.878757                     0.149838               0.011680   \n",
       "66           4.208129                     0.360765               0.037933   \n",
       "67           4.208129                     0.325062               0.039498   \n",
       "68           4.208129                     0.330265               0.044216   \n",
       "69           4.208129                     0.321576               0.044683   \n",
       "\n",
       "    sum_total_conformer_time_spent  total_walltime  \\\n",
       "0                         0.353667        5.442197   \n",
       "1                         1.107874        5.442197   \n",
       "2                         2.114506        5.442197   \n",
       "3                         0.318303        5.793172   \n",
       "4                         0.766230        5.793172   \n",
       "..                             ...             ...   \n",
       "65                        3.368164       12.907034   \n",
       "66                        4.256979       37.245130   \n",
       "67                        5.155580       37.245130   \n",
       "68                        6.984808       37.245130   \n",
       "69                        9.709718       37.245130   \n",
       "\n",
       "                                  gen_unique_name  total_end_to_end_time  \\\n",
       "0             octahedral_0_nunpairedes_4_charge_2               5.442197   \n",
       "1     trigonal_prismatic_0_nunpairedes_4_charge_2               5.442197   \n",
       "2   pentagonal_pyramidal_0_nunpairedes_4_charge_2               5.442197   \n",
       "3             octahedral_0_nunpairedes_4_charge_0               5.793172   \n",
       "4     trigonal_prismatic_0_nunpairedes_4_charge_0               5.793172   \n",
       "..                                            ...                    ...   \n",
       "65  pentagonal_pyramidal_0_nunpairedes_4_charge_2              12.907034   \n",
       "66      hexagonal_planar_0_nunpairedes_4_charge_2              37.245130   \n",
       "67            octahedral_0_nunpairedes_4_charge_2              37.245130   \n",
       "68    trigonal_prismatic_0_nunpairedes_4_charge_2              37.245130   \n",
       "69  pentagonal_pyramidal_0_nunpairedes_4_charge_2              37.245130   \n",
       "\n",
       "   sampled_solvation_shells  \n",
       "0                      None  \n",
       "1                      None  \n",
       "2                      None  \n",
       "3                      None  \n",
       "4                      None  \n",
       "..                      ...  \n",
       "65                     None  \n",
       "66                     None  \n",
       "67                     None  \n",
       "68                     None  \n",
       "69                     None  \n",
       "\n",
       "[70 rows x 22 columns]"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "f90eded4-1bb3-428f-b3cf-8b35150976a1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/3dmoljs_load.v0": "<div id=\"3dmolviewer_17060460775476549\"  style=\"position: relative; width: 800px; height: 600px\">\n        <p id=\"3dmolwarning_17060460775476549\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason).  You need to install the 3dmol extension: <br>\n        <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n        </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n  return new Promise((resolve, reject) => {\n    //this is to ignore the existence of requirejs amd\n    var savedexports, savedmodule;\n    if (typeof exports !== 'undefined') savedexports = exports;\n    else exports = {}\n    if (typeof module !== 'undefined') savedmodule = module;\n    else module = {}\n\n    var tag = document.createElement('script');\n    tag.src = uri;\n    tag.async = true;\n    tag.onload = () => {\n        exports = savedexports;\n        module = savedmodule;\n        resolve();\n    };\n  var firstScriptTag = document.getElementsByTagName('script')[0];\n  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n  $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.0.1/3Dmol-min.js');\n}\n\nvar viewer_17060460775476549 = null;\nvar warn = document.getElementById(\"3dmolwarning_17060460775476549\");\nif(warn) {\n    warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nvar viewergrid_17060460775476549 = null;\nviewergrid_17060460775476549 = $3Dmol.createViewerGrid(document.getElementById(\"3dmolviewer_17060460775476549\"),{rows: 3, cols: 4, control_all: false},{backgroundColor:\"white\"});\nviewer_17060460775476549 = viewergrid_17060460775476549[0][0];\nviewergrid_17060460775476549[0][0].zoomTo();viewergrid_17060460775476549[0][1].zoomTo();viewergrid_17060460775476549[0][2].zoomTo();viewergrid_17060460775476549[0][3].zoomTo();viewergrid_17060460775476549[1][0].zoomTo();viewergrid_17060460775476549[1][1].zoomTo();viewergrid_17060460775476549[1][2].zoomTo();viewergrid_17060460775476549[1][3].zoomTo();viewergrid_17060460775476549[2][0].zoomTo();viewergrid_17060460775476549[2][1].zoomTo();viewergrid_17060460775476549[2][2].zoomTo();viewergrid_17060460775476549[2][3].zoomTo();\tviewergrid_17060460775476549[0][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    20    19     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0791   -0.1095   -0.0300   Fe        1 RES1   0.0000\\n     2 O1        0.0118    0.0488    2.3226   O.3       1 RES1   0.0000\\n     3 H1        0.2829   -0.6874    2.8820   H         1 RES1   0.0000\\n     4 H2       -0.4117    0.6853    2.9079   H         1 RES1   0.0000\\n     5 O2        0.0072   -0.0393   -2.3777   O.3       1 RES1   0.0000\\n     6 H3       -0.5738    0.4154   -2.9968   H         1 RES1   0.0000\\n     7 H4        0.5702   -0.6071   -2.9139   H         1 RES1   0.0000\\n     8 O3        2.2956   -0.1185   -0.0499   O.3       1 RES1   0.0000\\n     9 H5        2.8292   -0.0651    0.7506   H         1 RES1   0.0000\\n    10 H6        2.8332    0.2669   -0.7506   H         1 RES1   0.0000\\n    11 O4       -2.4362   -0.0666   -0.0073   O.3       1 RES1   0.0000\\n    12 H7       -3.0303   -0.1540   -0.7605   H         1 RES1   0.0000\\n    13 H8       -3.0048    0.0357    0.7645   H         1 RES1   0.0000\\n    14 O5        0.0077    2.2366   -0.0071   O.3       1 RES1   0.0000\\n    15 H9        0.4634    2.7911    0.6344   H         1 RES1   0.0000\\n    16 H10      -0.4169    2.8406   -0.6252   H         1 RES1   0.0000\\n    17 O6        0.5286   -2.4306    0.6409   O.3       1 RES1   0.0000\\n    18 O7       -0.3108   -2.5494   -0.4960   O.3       1 RES1   0.0000\\n    19 H11       1.3422   -2.9177    0.4046   H         1 RES1   0.0000\\n    20 H12      -0.9084   -3.2955   -0.2926   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n    19    18    20    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       20 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[0][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[0][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[0][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[0][0].zoomTo();\n\tviewergrid_17060460775476549[0][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0004    0.0000   -0.0000   Fe        1 RES1   0.0000\\n     2 O1       -0.0062   -0.0184    2.3469   O.3       1 RES1   0.0000\\n     3 H1        0.7420   -0.2062    2.9228   H         1 RES1   0.0000\\n     4 H2       -0.7352    0.2240    2.9268   H         1 RES1   0.0000\\n     5 O2       -0.0062    0.0184   -2.3469   O.3       1 RES1   0.0000\\n     6 H3       -0.7352   -0.2240   -2.9268   H         1 RES1   0.0000\\n     7 H4        0.7420    0.2062   -2.9228   H         1 RES1   0.0000\\n     8 O3        2.3550    0.0000    0.0000   O.3       1 RES1   0.0000\\n     9 H5        2.9357   -0.7514    0.1544   H         1 RES1   0.0000\\n    10 H6        2.9357    0.7514   -0.1544   H         1 RES1   0.0000\\n    11 O4       -2.3529    0.0000   -0.0000   O.3       1 RES1   0.0000\\n    12 H7       -2.9346   -0.6042    0.4712   H         1 RES1   0.0000\\n    13 H8       -2.9346    0.6042   -0.4712   H         1 RES1   0.0000\\n    14 O5        0.0069    2.3484   -0.0220   O.3       1 RES1   0.0000\\n    15 H9       -0.7396    2.9291   -0.1993   H         1 RES1   0.0000\\n    16 H10       0.7297    2.9345    0.2217   H         1 RES1   0.0000\\n    17 O6        0.0069   -2.3484    0.0220   O.3       1 RES1   0.0000\\n    18 H11      -0.7396   -2.9291    0.1993   H         1 RES1   0.0000\\n    19 H12       0.7297   -2.9345   -0.2217   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[0][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[0][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[0][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[0][1].zoomTo();\n\tviewergrid_17060460775476549[0][2].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.3814    0.2477   -0.0602   Fe        1 RES1   0.0000\\n     2 O1        0.1885    2.2712    1.2770   O.3       1 RES1   0.0000\\n     3 H1       -0.6454    2.5873    1.6329   H         1 RES1   0.0000\\n     4 H2        0.6939    3.0482    1.0186   H         1 RES1   0.0000\\n     5 O2       -0.0839   -1.9291   -1.0051   O.3       1 RES1   0.0000\\n     6 H3       -0.9859   -2.2635   -0.9906   H         1 RES1   0.0000\\n     7 H4        0.1911   -1.9412   -1.9283   H         1 RES1   0.0000\\n     8 O3        2.0784   -1.0149    1.0880   O.3       1 RES1   0.0000\\n     9 H5        2.1302   -1.9481    0.8596   H         1 RES1   0.0000\\n    10 H6        2.9693   -0.6607    0.9955   H         1 RES1   0.0000\\n    11 O4       -0.6406   -0.4419    2.0438   O.3       1 RES1   0.0000\\n    12 H7       -0.2115    0.0386    2.7580   H         1 RES1   0.0000\\n    13 H8       -0.6059   -1.3715    2.2857   H         1 RES1   0.0000\\n    14 O5       -1.8132    0.4898   -0.9754   O.3       1 RES1   0.0000\\n    15 H9       -1.9383    1.1805   -1.6325   H         1 RES1   0.0000\\n    16 H10      -2.6438    0.4057   -0.5019   H         1 RES1   0.0000\\n    17 I1        1.7867    1.3001   -1.8371   I         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[0][2].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[0][2].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[0][2].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[0][2].zoomTo();\n\tviewergrid_17060460775476549[0][3].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 0 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 0\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0000    0.0000    0.0000   Fe        1 RES1   0.0000\\n     2 O1        1.4421   -0.0000    1.2502   O.3       1 RES1   0.0000\\n     3 H1        1.7751    0.7594    1.7915   H         1 RES1   0.0000\\n     4 H2        2.0251   -0.7594    1.5032   H         1 RES1   0.0000\\n     5 O2       -0.7216    1.2494    1.2494   O.3       1 RES1   0.0000\\n     6 H3       -0.9489    1.0931    2.2005   H         1 RES1   0.0000\\n     7 H4       -0.9527    2.1994    1.0920   H         1 RES1   0.0000\\n     8 O3       -0.7216   -1.2494    1.2494   O.3       1 RES1   0.0000\\n     9 H5       -0.4791   -2.2029    1.3620   H         1 RES1   0.0000\\n    10 H6       -1.4224   -1.0896    1.9305   H         1 RES1   0.0000\\n    11 O4       -0.7216    1.2494   -1.2494   O.3       1 RES1   0.0000\\n    12 H7       -0.2746    1.6418   -2.0411   H         1 RES1   0.0000\\n    13 H8       -1.6269    1.6507   -1.2513   H         1 RES1   0.0000\\n    14 O5       -0.7216   -1.2494   -1.2494   O.3       1 RES1   0.0000\\n    15 H9       -1.3013   -1.0603   -2.0296   H         1 RES1   0.0000\\n    16 H10      -0.6002   -2.2321   -1.2628   H         1 RES1   0.0000\\n    17 O6        1.2818    0.0000   -1.1113   O.3       1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[0][3].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[0][3].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[0][3].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[0][3].zoomTo();\n\tviewergrid_17060460775476549[1][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    22    21     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0216   -0.0670    0.3815   Fe        1 RES1   0.0000\\n     2 O1        0.1941    0.0905    2.6716   O.3       1 RES1   0.0000\\n     3 H1        0.9737   -0.2016    3.1562   H         1 RES1   0.0000\\n     4 H2       -0.2963    0.6544    3.2797   H         1 RES1   0.0000\\n     5 O2        2.3368   -0.0376    0.0232   O.3       1 RES1   0.0000\\n     6 H3        2.9070   -0.6232   -0.4877   H         1 RES1   0.0000\\n     7 H4        2.8691    0.7345    0.2398   H         1 RES1   0.0000\\n     8 O3        0.6464    2.1986   -0.0802   O.3       1 RES1   0.0000\\n     9 H5        0.4523    2.9999    0.4151   H         1 RES1   0.0000\\n    10 H6        1.0864    2.4868   -0.8867   H         1 RES1   0.0000\\n    11 O4       -1.9073    1.2003   -0.3230   O.3       1 RES1   0.0000\\n    12 H7       -2.7534    1.2095    0.1343   H         1 RES1   0.0000\\n    13 H8       -1.9978    1.8158   -1.0580   H         1 RES1   0.0000\\n    14 O5        0.6945   -2.2380   -0.3250   O.3       1 RES1   0.0000\\n    15 H9        0.4216   -2.7234   -1.1101   H         1 RES1   0.0000\\n    16 H10       1.2652   -2.8409    0.1623   H         1 RES1   0.0000\\n    17 C1       -2.7902   -1.8661   -0.2130   C.3       1 RES1   0.0000\\n    18 O6       -1.9056   -1.4066    0.8129   O.3       1 RES1   0.0000\\n    19 H11      -3.8294   -1.7106    0.0881   H         1 RES1   0.0000\\n    20 H12      -2.6339   -2.9259   -0.4221   H         1 RES1   0.0000\\n    21 H13      -2.5901   -1.2746   -1.1057   H         1 RES1   0.0000\\n    22 H14      -2.0520   -1.9667    1.5846   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    18    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n    19    17    20    1\\n    20    17    21    1\\n    21    18    22    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       22 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[1][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[1][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[1][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[1][0].zoomTo();\n\tviewergrid_17060460775476549[1][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    18    17     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.2817    0.2234   -0.4322   Fe        1 RES1   0.0000\\n     2 O1        0.2389    1.8955    1.1572   O.3       1 RES1   0.0000\\n     3 H1        1.0443    2.2375    1.5652   H         1 RES1   0.0000\\n     4 H2       -0.3683    2.6457    1.1086   H         1 RES1   0.0000\\n     5 O2       -0.1727   -1.9635   -0.8256   O.3       1 RES1   0.0000\\n     6 H3       -0.9488   -2.4329   -0.4982   H         1 RES1   0.0000\\n     7 H4        0.1327   -2.4628   -1.5932   H         1 RES1   0.0000\\n     8 O3        2.1845   -0.6210    0.6804   O.3       1 RES1   0.0000\\n     9 H5        2.2830   -1.5696    0.8312   H         1 RES1   0.0000\\n    10 H6        3.0835   -0.2663    0.6912   H         1 RES1   0.0000\\n    11 O4       -0.8020   -0.7607    1.5865   O.3       1 RES1   0.0000\\n    12 H7       -1.6197   -0.4360    1.9837   H         1 RES1   0.0000\\n    13 H8       -0.2289   -0.9831    2.3301   H         1 RES1   0.0000\\n    14 O5       -1.9482    0.8368   -0.8717   O.3       1 RES1   0.0000\\n    15 H9       -2.1808    1.6402   -1.3520   H         1 RES1   0.0000\\n    16 H10      -2.7322    0.2764   -0.9284   H         1 RES1   0.0000\\n    17 O6        1.1084    1.4162   -1.4822   O.2       1 RES1   0.0000\\n    18 O7        0.9505    0.3392   -2.0917   O.2       1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    2\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       18 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[1][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[1][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[1][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[1][1].zoomTo();\n\tviewergrid_17060460775476549[1][2].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.1577   -0.1466    0.0251   Fe        1 RES1   0.0000\\n     2 O1       -0.2399    2.2231    0.3640   O.3       1 RES1   0.0000\\n     3 H1        0.2210    2.8565    0.9218   H         1 RES1   0.0000\\n     4 H2       -1.1790    2.3088    0.5573   H         1 RES1   0.0000\\n     5 O2        0.2788   -2.3383   -1.0452   O.3       1 RES1   0.0000\\n     6 H3       -0.6175   -2.6901   -0.9885   H         1 RES1   0.0000\\n     7 H4        0.4945   -2.2692   -1.9795   H         1 RES1   0.0000\\n     8 O3        2.2222   -1.1517    0.7919   O.3       1 RES1   0.0000\\n     9 H5        2.2622   -2.0913    0.5867   H         1 RES1   0.0000\\n    10 H6        2.4631   -1.0594    1.7175   H         1 RES1   0.0000\\n    11 O4        0.0142   -0.4238    2.4861   O.3       1 RES1   0.0000\\n    12 H7       -0.7545   -1.0072    2.5023   H         1 RES1   0.0000\\n    13 H8       -0.1643    0.2753    3.1193   H         1 RES1   0.0000\\n    14 O5        0.0413    0.5700   -2.2785   O.3       1 RES1   0.0000\\n    15 H9        0.4930    1.3960   -2.4698   H         1 RES1   0.0000\\n    16 H10      -0.8783    0.6949   -2.5327   H         1 RES1   0.0000\\n    17 F1       -1.6621   -0.5803    0.2150   F         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[1][2].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[1][2].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[1][2].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[1][2].zoomTo();\n\tviewergrid_17060460775476549[1][3].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0738    0.0111   -0.1858   Fe        1 RES1   0.0000\\n     2 O1        1.6858   -0.2317    1.8033   O.3       1 RES1   0.0000\\n     3 H1        1.9507    0.6511    2.0767   H         1 RES1   0.0000\\n     4 H2        2.4826   -0.6399    1.4472   H         1 RES1   0.0000\\n     5 O2       -0.7560    1.6831    1.3248   O.3       1 RES1   0.0000\\n     6 H3       -1.2090    1.1774    2.0057   H         1 RES1   0.0000\\n     7 H4       -0.7620    2.6016    1.6060   H         1 RES1   0.0000\\n     8 O3       -0.9561   -1.3252    1.5482   O.3       1 RES1   0.0000\\n     9 H5       -1.4167   -2.0984    1.2097   H         1 RES1   0.0000\\n    10 H6       -0.3024   -1.6290    2.1888   H         1 RES1   0.0000\\n    11 O4       -1.0946    1.4541   -1.6974   O.3       1 RES1   0.0000\\n    12 H7       -1.4810    2.2647   -1.3548   H         1 RES1   0.0000\\n    13 H8       -0.5655    1.6967   -2.4638   H         1 RES1   0.0000\\n    14 O5       -1.0391   -1.7688   -1.3691   O.3       1 RES1   0.0000\\n    15 H9       -1.5838   -1.3971   -2.0705   H         1 RES1   0.0000\\n    16 H10      -0.4679   -2.4239   -1.7831   H         1 RES1   0.0000\\n    17 Cl1       1.9149   -0.0256   -1.2358   Cl        1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[1][3].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[1][3].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[1][3].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[1][3].zoomTo();\n\tviewergrid_17060460775476549[2][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    27    27     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0039    0.1026    0.0027   Fe        1 RES1   0.0000\\n     2 O1        0.0098    0.0368    2.4035   O.3       1 RES1   0.0000\\n     3 H1        0.7853    0.2380    2.9371   H         1 RES1   0.0000\\n     4 H2       -0.7487    0.1769    2.9804   H         1 RES1   0.0000\\n     5 O2       -0.0056    0.0353   -2.3877   O.3       1 RES1   0.0000\\n     6 H3       -0.7718    0.1888   -2.9489   H         1 RES1   0.0000\\n     7 H4        0.7636    0.1096   -2.9621   H         1 RES1   0.0000\\n     8 O3        2.3668    0.0349   -0.0007   O.3       1 RES1   0.0000\\n     9 H5        2.9665    0.5655   -0.5342   H         1 RES1   0.0000\\n    10 H6        2.9223   -0.5478    0.5254   H         1 RES1   0.0000\\n    11 O4       -2.3737    0.0523    0.0161   O.3       1 RES1   0.0000\\n    12 H7       -2.9536    0.4733   -0.6257   H         1 RES1   0.0000\\n    13 H8       -2.9471   -0.4592    0.5949   H         1 RES1   0.0000\\n    14 O5       -0.0016    2.4980   -0.0264   O.3       1 RES1   0.0000\\n    15 H9        0.7559    3.0877   -0.0934   H         1 RES1   0.0000\\n    16 H10      -0.7620    3.0674    0.1294   H         1 RES1   0.0000\\n    17 C1       -0.0155   -5.0239    0.0467   C.ar      1 RES1   0.0000\\n    18 C2       -0.3350   -4.2976    1.1841   C.ar      1 RES1   0.0000\\n    19 C3       -0.3167   -2.9129    1.1165   C.ar      1 RES1   0.0000\\n    20 N1       -0.0006   -2.2602    0.0042   N.ar      1 RES1   0.0000\\n    21 C4        0.3085   -2.9494   -1.0871   C.ar      1 RES1   0.0000\\n    22 C5        0.3126   -4.3358   -1.1121   C.ar      1 RES1   0.0000\\n    23 H11      -0.0218   -6.1028    0.0635   H         1 RES1   0.0000\\n    24 H12      -0.5933   -4.7850    2.1091   H         1 RES1   0.0000\\n    25 H13      -0.5550   -2.3040    1.9764   H         1 RES1   0.0000\\n    26 H14       0.5566   -2.3697   -1.9645   H         1 RES1   0.0000\\n    27 H15       0.5685   -4.8547   -2.0205   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    20    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    22    2\\n    19    17    23    1\\n    20    18    19    2\\n    21    18    24    1\\n    22    19    20    1\\n    23    19    25    1\\n    24    20    21    2\\n    25    21    22    1\\n    26    21    26    1\\n    27    22    27    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       27 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[2][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[2][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[2][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[2][0].zoomTo();\n\tviewergrid_17060460775476549[2][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0149   -0.0778    0.3978   Fe        1 RES1   0.0000\\n     2 O1        2.4299   -0.2216   -0.0569   O.3       1 RES1   0.0000\\n     3 H1        2.8639   -0.1021    0.7944   H         1 RES1   0.0000\\n     4 H2        2.7103    0.5176   -0.6064   H         1 RES1   0.0000\\n     5 O2        1.0501    2.1760   -0.1230   O.3       1 RES1   0.0000\\n     6 H3        0.5573    2.7263   -0.7391   H         1 RES1   0.0000\\n     7 H4        1.0783    2.6563    0.7097   H         1 RES1   0.0000\\n     8 O3       -1.7606    1.5829   -0.2294   O.3       1 RES1   0.0000\\n     9 H5       -2.0927    2.0875    0.5188   H         1 RES1   0.0000\\n    10 H6       -2.5199    1.1189   -0.5981   H         1 RES1   0.0000\\n    11 O4       -2.1789   -1.1909   -0.0166   O.3       1 RES1   0.0000\\n    12 H7       -2.4699   -1.6119    0.7992   H         1 RES1   0.0000\\n    13 H8       -2.1310   -1.8808   -0.6843   H         1 RES1   0.0000\\n    14 O5        0.4904   -2.3735   -0.2469   O.3       1 RES1   0.0000\\n    15 H9        1.2979   -2.4259   -0.7674   H         1 RES1   0.0000\\n    16 H10       0.6082   -2.9764    0.4934   H         1 RES1   0.0000\\n    17 F1        0.0833   -0.0046    2.2238   F         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n\tviewergrid_17060460775476549[2][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n\tviewergrid_17060460775476549[2][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n\tviewergrid_17060460775476549[2][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n\tviewergrid_17060460775476549[2][1].zoomTo();\nviewergrid_17060460775476549[2][3].render();\nviewergrid_17060460775476549[2][2].render();\nviewergrid_17060460775476549[2][1].render();\nviewergrid_17060460775476549[2][0].render();\nviewergrid_17060460775476549[1][3].render();\nviewergrid_17060460775476549[1][2].render();\nviewergrid_17060460775476549[1][1].render();\nviewergrid_17060460775476549[1][0].render();\nviewergrid_17060460775476549[0][3].render();\nviewergrid_17060460775476549[0][2].render();\nviewergrid_17060460775476549[0][1].render();\nviewergrid_17060460775476549[0][0].render();\n});\n</script>",
      "text/html": [
       "<div id=\"3dmolviewer_17060460775476549\"  style=\"position: relative; width: 800px; height: 600px\">\n",
       "        <p id=\"3dmolwarning_17060460775476549\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason).  You need to install the 3dmol extension: <br>\n",
       "        <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n",
       "        </div>\n",
       "<script>\n",
       "\n",
       "var loadScriptAsync = function(uri){\n",
       "  return new Promise((resolve, reject) => {\n",
       "    //this is to ignore the existence of requirejs amd\n",
       "    var savedexports, savedmodule;\n",
       "    if (typeof exports !== 'undefined') savedexports = exports;\n",
       "    else exports = {}\n",
       "    if (typeof module !== 'undefined') savedmodule = module;\n",
       "    else module = {}\n",
       "\n",
       "    var tag = document.createElement('script');\n",
       "    tag.src = uri;\n",
       "    tag.async = true;\n",
       "    tag.onload = () => {\n",
       "        exports = savedexports;\n",
       "        module = savedmodule;\n",
       "        resolve();\n",
       "    };\n",
       "  var firstScriptTag = document.getElementsByTagName('script')[0];\n",
       "  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n",
       "});\n",
       "};\n",
       "\n",
       "if(typeof $3Dmolpromise === 'undefined') {\n",
       "$3Dmolpromise = null;\n",
       "  $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.0.1/3Dmol-min.js');\n",
       "}\n",
       "\n",
       "var viewer_17060460775476549 = null;\n",
       "var warn = document.getElementById(\"3dmolwarning_17060460775476549\");\n",
       "if(warn) {\n",
       "    warn.parentNode.removeChild(warn);\n",
       "}\n",
       "$3Dmolpromise.then(function() {\n",
       "var viewergrid_17060460775476549 = null;\n",
       "viewergrid_17060460775476549 = $3Dmol.createViewerGrid(document.getElementById(\"3dmolviewer_17060460775476549\"),{rows: 3, cols: 4, control_all: false},{backgroundColor:\"white\"});\n",
       "viewer_17060460775476549 = viewergrid_17060460775476549[0][0];\n",
       "viewergrid_17060460775476549[0][0].zoomTo();viewergrid_17060460775476549[0][1].zoomTo();viewergrid_17060460775476549[0][2].zoomTo();viewergrid_17060460775476549[0][3].zoomTo();viewergrid_17060460775476549[1][0].zoomTo();viewergrid_17060460775476549[1][1].zoomTo();viewergrid_17060460775476549[1][2].zoomTo();viewergrid_17060460775476549[1][3].zoomTo();viewergrid_17060460775476549[2][0].zoomTo();viewergrid_17060460775476549[2][1].zoomTo();viewergrid_17060460775476549[2][2].zoomTo();viewergrid_17060460775476549[2][3].zoomTo();\tviewergrid_17060460775476549[0][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    20    19     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0791   -0.1095   -0.0300   Fe        1 RES1   0.0000\\n     2 O1        0.0118    0.0488    2.3226   O.3       1 RES1   0.0000\\n     3 H1        0.2829   -0.6874    2.8820   H         1 RES1   0.0000\\n     4 H2       -0.4117    0.6853    2.9079   H         1 RES1   0.0000\\n     5 O2        0.0072   -0.0393   -2.3777   O.3       1 RES1   0.0000\\n     6 H3       -0.5738    0.4154   -2.9968   H         1 RES1   0.0000\\n     7 H4        0.5702   -0.6071   -2.9139   H         1 RES1   0.0000\\n     8 O3        2.2956   -0.1185   -0.0499   O.3       1 RES1   0.0000\\n     9 H5        2.8292   -0.0651    0.7506   H         1 RES1   0.0000\\n    10 H6        2.8332    0.2669   -0.7506   H         1 RES1   0.0000\\n    11 O4       -2.4362   -0.0666   -0.0073   O.3       1 RES1   0.0000\\n    12 H7       -3.0303   -0.1540   -0.7605   H         1 RES1   0.0000\\n    13 H8       -3.0048    0.0357    0.7645   H         1 RES1   0.0000\\n    14 O5        0.0077    2.2366   -0.0071   O.3       1 RES1   0.0000\\n    15 H9        0.4634    2.7911    0.6344   H         1 RES1   0.0000\\n    16 H10      -0.4169    2.8406   -0.6252   H         1 RES1   0.0000\\n    17 O6        0.5286   -2.4306    0.6409   O.3       1 RES1   0.0000\\n    18 O7       -0.3108   -2.5494   -0.4960   O.3       1 RES1   0.0000\\n    19 H11       1.3422   -2.9177    0.4046   H         1 RES1   0.0000\\n    20 H12      -0.9084   -3.2955   -0.2926   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n    19    18    20    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       20 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[0][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[0][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[0][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[0][0].zoomTo();\n",
       "\tviewergrid_17060460775476549[0][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    19    18     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0004    0.0000   -0.0000   Fe        1 RES1   0.0000\\n     2 O1       -0.0062   -0.0184    2.3469   O.3       1 RES1   0.0000\\n     3 H1        0.7420   -0.2062    2.9228   H         1 RES1   0.0000\\n     4 H2       -0.7352    0.2240    2.9268   H         1 RES1   0.0000\\n     5 O2       -0.0062    0.0184   -2.3469   O.3       1 RES1   0.0000\\n     6 H3       -0.7352   -0.2240   -2.9268   H         1 RES1   0.0000\\n     7 H4        0.7420    0.2062   -2.9228   H         1 RES1   0.0000\\n     8 O3        2.3550    0.0000    0.0000   O.3       1 RES1   0.0000\\n     9 H5        2.9357   -0.7514    0.1544   H         1 RES1   0.0000\\n    10 H6        2.9357    0.7514   -0.1544   H         1 RES1   0.0000\\n    11 O4       -2.3529    0.0000   -0.0000   O.3       1 RES1   0.0000\\n    12 H7       -2.9346   -0.6042    0.4712   H         1 RES1   0.0000\\n    13 H8       -2.9346    0.6042   -0.4712   H         1 RES1   0.0000\\n    14 O5        0.0069    2.3484   -0.0220   O.3       1 RES1   0.0000\\n    15 H9       -0.7396    2.9291   -0.1993   H         1 RES1   0.0000\\n    16 H10       0.7297    2.9345    0.2217   H         1 RES1   0.0000\\n    17 O6        0.0069   -2.3484    0.0220   O.3       1 RES1   0.0000\\n    18 H11      -0.7396   -2.9291    0.1993   H         1 RES1   0.0000\\n    19 H12       0.7297   -2.9345   -0.2217   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       19 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[0][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[0][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[0][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[0][1].zoomTo();\n",
       "\tviewergrid_17060460775476549[0][2].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.3814    0.2477   -0.0602   Fe        1 RES1   0.0000\\n     2 O1        0.1885    2.2712    1.2770   O.3       1 RES1   0.0000\\n     3 H1       -0.6454    2.5873    1.6329   H         1 RES1   0.0000\\n     4 H2        0.6939    3.0482    1.0186   H         1 RES1   0.0000\\n     5 O2       -0.0839   -1.9291   -1.0051   O.3       1 RES1   0.0000\\n     6 H3       -0.9859   -2.2635   -0.9906   H         1 RES1   0.0000\\n     7 H4        0.1911   -1.9412   -1.9283   H         1 RES1   0.0000\\n     8 O3        2.0784   -1.0149    1.0880   O.3       1 RES1   0.0000\\n     9 H5        2.1302   -1.9481    0.8596   H         1 RES1   0.0000\\n    10 H6        2.9693   -0.6607    0.9955   H         1 RES1   0.0000\\n    11 O4       -0.6406   -0.4419    2.0438   O.3       1 RES1   0.0000\\n    12 H7       -0.2115    0.0386    2.7580   H         1 RES1   0.0000\\n    13 H8       -0.6059   -1.3715    2.2857   H         1 RES1   0.0000\\n    14 O5       -1.8132    0.4898   -0.9754   O.3       1 RES1   0.0000\\n    15 H9       -1.9383    1.1805   -1.6325   H         1 RES1   0.0000\\n    16 H10      -2.6438    0.4057   -0.5019   H         1 RES1   0.0000\\n    17 I1        1.7867    1.3001   -1.8371   I         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[0][2].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[0][2].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[0][2].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[0][2].zoomTo();\n",
       "\tviewergrid_17060460775476549[0][3].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 0 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 0\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0000    0.0000    0.0000   Fe        1 RES1   0.0000\\n     2 O1        1.4421   -0.0000    1.2502   O.3       1 RES1   0.0000\\n     3 H1        1.7751    0.7594    1.7915   H         1 RES1   0.0000\\n     4 H2        2.0251   -0.7594    1.5032   H         1 RES1   0.0000\\n     5 O2       -0.7216    1.2494    1.2494   O.3       1 RES1   0.0000\\n     6 H3       -0.9489    1.0931    2.2005   H         1 RES1   0.0000\\n     7 H4       -0.9527    2.1994    1.0920   H         1 RES1   0.0000\\n     8 O3       -0.7216   -1.2494    1.2494   O.3       1 RES1   0.0000\\n     9 H5       -0.4791   -2.2029    1.3620   H         1 RES1   0.0000\\n    10 H6       -1.4224   -1.0896    1.9305   H         1 RES1   0.0000\\n    11 O4       -0.7216    1.2494   -1.2494   O.3       1 RES1   0.0000\\n    12 H7       -0.2746    1.6418   -2.0411   H         1 RES1   0.0000\\n    13 H8       -1.6269    1.6507   -1.2513   H         1 RES1   0.0000\\n    14 O5       -0.7216   -1.2494   -1.2494   O.3       1 RES1   0.0000\\n    15 H9       -1.3013   -1.0603   -2.0296   H         1 RES1   0.0000\\n    16 H10      -0.6002   -2.2321   -1.2628   H         1 RES1   0.0000\\n    17 O6        1.2818    0.0000   -1.1113   O.3       1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[0][3].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[0][3].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[0][3].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[0][3].zoomTo();\n",
       "\tviewergrid_17060460775476549[1][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    22    21     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0216   -0.0670    0.3815   Fe        1 RES1   0.0000\\n     2 O1        0.1941    0.0905    2.6716   O.3       1 RES1   0.0000\\n     3 H1        0.9737   -0.2016    3.1562   H         1 RES1   0.0000\\n     4 H2       -0.2963    0.6544    3.2797   H         1 RES1   0.0000\\n     5 O2        2.3368   -0.0376    0.0232   O.3       1 RES1   0.0000\\n     6 H3        2.9070   -0.6232   -0.4877   H         1 RES1   0.0000\\n     7 H4        2.8691    0.7345    0.2398   H         1 RES1   0.0000\\n     8 O3        0.6464    2.1986   -0.0802   O.3       1 RES1   0.0000\\n     9 H5        0.4523    2.9999    0.4151   H         1 RES1   0.0000\\n    10 H6        1.0864    2.4868   -0.8867   H         1 RES1   0.0000\\n    11 O4       -1.9073    1.2003   -0.3230   O.3       1 RES1   0.0000\\n    12 H7       -2.7534    1.2095    0.1343   H         1 RES1   0.0000\\n    13 H8       -1.9978    1.8158   -1.0580   H         1 RES1   0.0000\\n    14 O5        0.6945   -2.2380   -0.3250   O.3       1 RES1   0.0000\\n    15 H9        0.4216   -2.7234   -1.1101   H         1 RES1   0.0000\\n    16 H10       1.2652   -2.8409    0.1623   H         1 RES1   0.0000\\n    17 C1       -2.7902   -1.8661   -0.2130   C.3       1 RES1   0.0000\\n    18 O6       -1.9056   -1.4066    0.8129   O.3       1 RES1   0.0000\\n    19 H11      -3.8294   -1.7106    0.0881   H         1 RES1   0.0000\\n    20 H12      -2.6339   -2.9259   -0.4221   H         1 RES1   0.0000\\n    21 H13      -2.5901   -1.2746   -1.1057   H         1 RES1   0.0000\\n    22 H14      -2.0520   -1.9667    1.5846   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    18    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    19    1\\n    19    17    20    1\\n    20    17    21    1\\n    21    18    22    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       22 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[1][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[1][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[1][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[1][0].zoomTo();\n",
       "\tviewergrid_17060460775476549[1][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    18    17     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.2817    0.2234   -0.4322   Fe        1 RES1   0.0000\\n     2 O1        0.2389    1.8955    1.1572   O.3       1 RES1   0.0000\\n     3 H1        1.0443    2.2375    1.5652   H         1 RES1   0.0000\\n     4 H2       -0.3683    2.6457    1.1086   H         1 RES1   0.0000\\n     5 O2       -0.1727   -1.9635   -0.8256   O.3       1 RES1   0.0000\\n     6 H3       -0.9488   -2.4329   -0.4982   H         1 RES1   0.0000\\n     7 H4        0.1327   -2.4628   -1.5932   H         1 RES1   0.0000\\n     8 O3        2.1845   -0.6210    0.6804   O.3       1 RES1   0.0000\\n     9 H5        2.2830   -1.5696    0.8312   H         1 RES1   0.0000\\n    10 H6        3.0835   -0.2663    0.6912   H         1 RES1   0.0000\\n    11 O4       -0.8020   -0.7607    1.5865   O.3       1 RES1   0.0000\\n    12 H7       -1.6197   -0.4360    1.9837   H         1 RES1   0.0000\\n    13 H8       -0.2289   -0.9831    2.3301   H         1 RES1   0.0000\\n    14 O5       -1.9482    0.8368   -0.8717   O.3       1 RES1   0.0000\\n    15 H9       -2.1808    1.6402   -1.3520   H         1 RES1   0.0000\\n    16 H10      -2.7322    0.2764   -0.9284   H         1 RES1   0.0000\\n    17 O6        1.1084    1.4162   -1.4822   O.2       1 RES1   0.0000\\n    18 O7        0.9505    0.3392   -2.0917   O.2       1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    2\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       18 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[1][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[1][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[1][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[1][1].zoomTo();\n",
       "\tviewergrid_17060460775476549[1][2].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.1577   -0.1466    0.0251   Fe        1 RES1   0.0000\\n     2 O1       -0.2399    2.2231    0.3640   O.3       1 RES1   0.0000\\n     3 H1        0.2210    2.8565    0.9218   H         1 RES1   0.0000\\n     4 H2       -1.1790    2.3088    0.5573   H         1 RES1   0.0000\\n     5 O2        0.2788   -2.3383   -1.0452   O.3       1 RES1   0.0000\\n     6 H3       -0.6175   -2.6901   -0.9885   H         1 RES1   0.0000\\n     7 H4        0.4945   -2.2692   -1.9795   H         1 RES1   0.0000\\n     8 O3        2.2222   -1.1517    0.7919   O.3       1 RES1   0.0000\\n     9 H5        2.2622   -2.0913    0.5867   H         1 RES1   0.0000\\n    10 H6        2.4631   -1.0594    1.7175   H         1 RES1   0.0000\\n    11 O4        0.0142   -0.4238    2.4861   O.3       1 RES1   0.0000\\n    12 H7       -0.7545   -1.0072    2.5023   H         1 RES1   0.0000\\n    13 H8       -0.1643    0.2753    3.1193   H         1 RES1   0.0000\\n    14 O5        0.0413    0.5700   -2.2785   O.3       1 RES1   0.0000\\n    15 H9        0.4930    1.3960   -2.4698   H         1 RES1   0.0000\\n    16 H10      -0.8783    0.6949   -2.5327   H         1 RES1   0.0000\\n    17 F1       -1.6621   -0.5803    0.2150   F         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[1][2].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[1][2].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[1][2].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[1][2].zoomTo();\n",
       "\tviewergrid_17060460775476549[1][3].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1       0.0738    0.0111   -0.1858   Fe        1 RES1   0.0000\\n     2 O1        1.6858   -0.2317    1.8033   O.3       1 RES1   0.0000\\n     3 H1        1.9507    0.6511    2.0767   H         1 RES1   0.0000\\n     4 H2        2.4826   -0.6399    1.4472   H         1 RES1   0.0000\\n     5 O2       -0.7560    1.6831    1.3248   O.3       1 RES1   0.0000\\n     6 H3       -1.2090    1.1774    2.0057   H         1 RES1   0.0000\\n     7 H4       -0.7620    2.6016    1.6060   H         1 RES1   0.0000\\n     8 O3       -0.9561   -1.3252    1.5482   O.3       1 RES1   0.0000\\n     9 H5       -1.4167   -2.0984    1.2097   H         1 RES1   0.0000\\n    10 H6       -0.3024   -1.6290    2.1888   H         1 RES1   0.0000\\n    11 O4       -1.0946    1.4541   -1.6974   O.3       1 RES1   0.0000\\n    12 H7       -1.4810    2.2647   -1.3548   H         1 RES1   0.0000\\n    13 H8       -0.5655    1.6967   -2.4638   H         1 RES1   0.0000\\n    14 O5       -1.0391   -1.7688   -1.3691   O.3       1 RES1   0.0000\\n    15 H9       -1.5838   -1.3971   -2.0705   H         1 RES1   0.0000\\n    16 H10      -0.4679   -2.4239   -1.7831   H         1 RES1   0.0000\\n    17 Cl1       1.9149   -0.0256   -1.2358   Cl        1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[1][3].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[1][3].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[1][3].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[1][3].zoomTo();\n",
       "\tviewergrid_17060460775476549[2][0].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 2 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 2\\n    27    27     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0039    0.1026    0.0027   Fe        1 RES1   0.0000\\n     2 O1        0.0098    0.0368    2.4035   O.3       1 RES1   0.0000\\n     3 H1        0.7853    0.2380    2.9371   H         1 RES1   0.0000\\n     4 H2       -0.7487    0.1769    2.9804   H         1 RES1   0.0000\\n     5 O2       -0.0056    0.0353   -2.3877   O.3       1 RES1   0.0000\\n     6 H3       -0.7718    0.1888   -2.9489   H         1 RES1   0.0000\\n     7 H4        0.7636    0.1096   -2.9621   H         1 RES1   0.0000\\n     8 O3        2.3668    0.0349   -0.0007   O.3       1 RES1   0.0000\\n     9 H5        2.9665    0.5655   -0.5342   H         1 RES1   0.0000\\n    10 H6        2.9223   -0.5478    0.5254   H         1 RES1   0.0000\\n    11 O4       -2.3737    0.0523    0.0161   O.3       1 RES1   0.0000\\n    12 H7       -2.9536    0.4733   -0.6257   H         1 RES1   0.0000\\n    13 H8       -2.9471   -0.4592    0.5949   H         1 RES1   0.0000\\n    14 O5       -0.0016    2.4980   -0.0264   O.3       1 RES1   0.0000\\n    15 H9        0.7559    3.0877   -0.0934   H         1 RES1   0.0000\\n    16 H10      -0.7620    3.0674    0.1294   H         1 RES1   0.0000\\n    17 C1       -0.0155   -5.0239    0.0467   C.ar      1 RES1   0.0000\\n    18 C2       -0.3350   -4.2976    1.1841   C.ar      1 RES1   0.0000\\n    19 C3       -0.3167   -2.9129    1.1165   C.ar      1 RES1   0.0000\\n    20 N1       -0.0006   -2.2602    0.0042   N.ar      1 RES1   0.0000\\n    21 C4        0.3085   -2.9494   -1.0871   C.ar      1 RES1   0.0000\\n    22 C5        0.3126   -4.3358   -1.1121   C.ar      1 RES1   0.0000\\n    23 H11      -0.0218   -6.1028    0.0635   H         1 RES1   0.0000\\n    24 H12      -0.5933   -4.7850    2.1091   H         1 RES1   0.0000\\n    25 H13      -0.5550   -2.3040    1.9764   H         1 RES1   0.0000\\n    26 H14       0.5566   -2.3697   -1.9645   H         1 RES1   0.0000\\n    27 H15       0.5685   -4.8547   -2.0205   H         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    20    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n    17    17    18    1\\n    18    17    22    2\\n    19    17    23    1\\n    20    18    19    2\\n    21    18    24    1\\n    22    19    20    1\\n    23    19    25    1\\n    24    20    21    2\\n    25    21    22    1\\n    26    21    26    1\\n    27    22    27    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       27 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[2][0].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[2][0].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[2][0].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[2][0].zoomTo();\n",
       "\tviewergrid_17060460775476549[2][1].addModel(\"@<TRIPOS>MOLECULE\\ntmp.mol2 Charge: 1 Unpaired_Electrons: 4 XTB_Unpaired_Electrons: 4 XTB_Charge: 1\\n    17    16     1     0     0\\nSMALL\\nNoCharges\\n****\\nGenerated from Architector\\n\\n@<TRIPOS>ATOM\\n     1 Fe1      -0.0149   -0.0778    0.3978   Fe        1 RES1   0.0000\\n     2 O1        2.4299   -0.2216   -0.0569   O.3       1 RES1   0.0000\\n     3 H1        2.8639   -0.1021    0.7944   H         1 RES1   0.0000\\n     4 H2        2.7103    0.5176   -0.6064   H         1 RES1   0.0000\\n     5 O2        1.0501    2.1760   -0.1230   O.3       1 RES1   0.0000\\n     6 H3        0.5573    2.7263   -0.7391   H         1 RES1   0.0000\\n     7 H4        1.0783    2.6563    0.7097   H         1 RES1   0.0000\\n     8 O3       -1.7606    1.5829   -0.2294   O.3       1 RES1   0.0000\\n     9 H5       -2.0927    2.0875    0.5188   H         1 RES1   0.0000\\n    10 H6       -2.5199    1.1189   -0.5981   H         1 RES1   0.0000\\n    11 O4       -2.1789   -1.1909   -0.0166   O.3       1 RES1   0.0000\\n    12 H7       -2.4699   -1.6119    0.7992   H         1 RES1   0.0000\\n    13 H8       -2.1310   -1.8808   -0.6843   H         1 RES1   0.0000\\n    14 O5        0.4904   -2.3735   -0.2469   O.3       1 RES1   0.0000\\n    15 H9        1.2979   -2.4259   -0.7674   H         1 RES1   0.0000\\n    16 H10       0.6082   -2.9764    0.4934   H         1 RES1   0.0000\\n    17 F1        0.0833   -0.0046    2.2238   F         1 RES1   0.0000\\n@<TRIPOS>BOND\\n     1     1     2    1\\n     2     1     5    1\\n     3     1     8    1\\n     4     1    11    1\\n     5     1    14    1\\n     6     1    17    1\\n     7     2     3    1\\n     8     2     4    1\\n     9     5     6    1\\n    10     5     7    1\\n    11     8     9    1\\n    12     8    10    1\\n    13    11    12    1\\n    14    11    13    1\\n    15    14    15    1\\n    16    14    16    1\\n@<TRIPOS>SUBSTRUCTURE\\n     1 RES1       17 GROUP             0 ****  ****    0  \\n\",\"mol2\");\n",
       "\tviewergrid_17060460775476549[2][1].addStyle({\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.3}});\n",
       "\tviewergrid_17060460775476549[2][1].setStyle({\"elem\": \"Fe\"},{\"sphere\": {\"colorscheme\": \"Jmol\", \"scale\": 0.75}});\n",
       "\tviewergrid_17060460775476549[2][1].addStyle({\"stick\": {\"colorscheme\": \"Jmol\", \"radius\": 0.25}});\n",
       "\tviewergrid_17060460775476549[2][1].zoomTo();\n",
       "viewergrid_17060460775476549[2][3].render();\n",
       "viewergrid_17060460775476549[2][2].render();\n",
       "viewergrid_17060460775476549[2][1].render();\n",
       "viewergrid_17060460775476549[2][0].render();\n",
       "viewergrid_17060460775476549[1][3].render();\n",
       "viewergrid_17060460775476549[1][2].render();\n",
       "viewergrid_17060460775476549[1][1].render();\n",
       "viewergrid_17060460775476549[1][0].render();\n",
       "viewergrid_17060460775476549[0][3].render();\n",
       "viewergrid_17060460775476549[0][2].render();\n",
       "viewergrid_17060460775476549[0][1].render();\n",
       "viewergrid_17060460775476549[0][0].render();\n",
       "});\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# This produced 70 structures (you may get more/less depending on how architector sampled)\n",
    "view_structures(out_df.sample(10,random_state=42).mol2string)\n",
    "# All of these (except the OXO-structures) are relaxed with GFN2-xTB already."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "9025ae8d-8a48-4070-8437-d2855e2f0374",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "total_charge                                                                      2\n",
       "xtb_n_unpaired_electrons                                                          4\n",
       "calc_n_unpaired_electrons                                                         4\n",
       "xtb_total_charge                                                                  2\n",
       "metal_ox                                                                          2\n",
       "init_energy                                                             -892.669267\n",
       "energy                                                                  -892.669267\n",
       "mol2string                        @<TRIPOS>MOLECULE\\noctahedral_0_nunpairedes_4_...\n",
       "init_mol2string                                                                None\n",
       "energy_sorted_index                                                               0\n",
       "total_possible_n_symmetries                                                       1\n",
       "inputDict                         {'core': {'metal': 'Fe', 'coreCN': 6, 'smiles'...\n",
       "core_preprocess_time                                                         0.1165\n",
       "symmetry_preprocess_time                                                   0.007407\n",
       "total_liggen_time                                                         11.143919\n",
       "total_complex_assembly_time                                                 0.13866\n",
       "final_relaxation_time                                                      0.013355\n",
       "sum_total_conformer_time_spent                                             0.353667\n",
       "total_walltime                                                             5.442197\n",
       "gen_unique_name                                 octahedral_0_nunpairedes_4_charge_2\n",
       "total_end_to_end_time                                                      5.442197\n",
       "sampled_solvation_shells                                                       None\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out_df.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "9c750aba-1226-4c37-a9ba-de1232416652",
   "metadata": {},
   "outputs": [],
   "source": [
    "# # To test on larger systems, just up the number of things requested.\n",
    "# with PyMPIExecutor(max_workers=cpu_count, cores_per_worker=1) as exe:\n",
    "#     fs_list = []\n",
    "#     for lig_name in monodf.index.values: # Iterate over all 52 monodentate ligands\n",
    "#         for metal in io_ptable.transition_metals[0:10]: # Iterate over first 10 transition metals\n",
    "#             tmp_inp = copy.deepcopy(input_dict_example)\n",
    "#             tmp_inp['core']['metal'] = metal\n",
    "#             tmp_inp['ligands'] = [lig_name]\n",
    "#             fs = exe.submit(calc_architector,tmp_inp)\n",
    "#             fs_list.append(fs)\n",
    "#     out_dfs = []\n",
    "#     for future in tqdm(concurrent.futures.as_completed(fs_list),total=len(fs_list)): # 520 calculations for testing scaling.\n",
    "#         out_dfs.append(future.result())\n",
    "# # Note that this block would take a while on just a laptop (probably ~1 hour)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3ba184ab-3007-4a04-b916-c9b5c340f255",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
